Skip to content

feat(setup): added basic at command#19

Merged
husamettinarabaci merged 1 commit into
developfrom
feat/at-command-basic-setup
Oct 2, 2025
Merged

feat(setup): added basic at command#19
husamettinarabaci merged 1 commit into
developfrom
feat/at-command-basic-setup

Conversation

@husamettinarabaci

Copy link
Copy Markdown
Member

Added basic at command implementation. It support usb-midi sysex protocol


🧩 Affected Module(s)

Mark the modules impacted by this PR:

  • Firmware
  • Hardware
  • Mechanic
  • Documentation
  • CI / Infra

This pull request introduces a new AT command subsystem to the firmware, enabling MIDI SysEx messages to be parsed as AT commands and dispatched to registered handlers. It also adds base64 encoding/decoding utilities, error handling, and integrates the system into the main USB MIDI I/O loop. Additionally, several new dependencies are added to support these features.

Core AT command subsystem:

  • Added a modular AT command framework, including a parser (parser.rs), dispatcher (mod.rs), handler trait and example handlers (handler.rs), and command registration (commands.rs). This allows incoming SysEx messages to be parsed, validated, and dispatched to appropriate handlers for execution. [1] [2] [3] [4]
  • Implemented base64 encoding/decoding utilities for safe transmission of AT command parameters and responses over MIDI SysEx (b64/mod.rs).
  • Introduced a comprehensive error type with descriptions for AT command parsing and handling (error/mod.rs).

SysEx and USB MIDI integration:

  • Added functions to build, parse, and packetize SysEx messages, and extract payloads for AT command processing (sysex/mod.rs).
  • Updated the USB MIDI I/O task to extract SysEx payloads, dispatch AT commands, and send base64-encoded responses or error messages back via SysEx.

Project setup and main loop integration:

  • Registered new modules in the firmware main, initialized the AT dispatcher, and integrated it into the USB MIDI pipeline. [1] [2]
  • Added new dependencies for MIDI, base64, and async trait support in Cargo.toml. [1] [2]

These changes collectively enable robust AT command handling over MIDI SysEx, with clear error reporting and modular extensibility for future commands.

Added basic at command implementation. It support usb-midi sysex protocol
@github-project-automation github-project-automation Bot moved this to 📥 Inbox / Ideas in hexaTune Project Oct 2, 2025
@github-actions github-actions Bot added module:firmware Firmware type:infra Infrastructure, CI/CD, build system labels Oct 2, 2025
@husamettinarabaci husamettinarabaci merged commit 8b22b7c into develop Oct 2, 2025
10 checks passed
@husamettinarabaci husamettinarabaci deleted the feat/at-command-basic-setup branch October 2, 2025 20:45
@github-project-automation github-project-automation Bot moved this from 📥 Inbox / Ideas to Done in hexaTune Project Oct 2, 2025
husamettinarabaci added a commit that referenced this pull request Oct 22, 2025
* feat(setup): added basic at command (#19)

Added basic at command implementation. It support usb-midi sysex protocol

* feat(setup): setted up pre commit hooks (#20)

Added reuse prettier commitlint hook

* feat(setup): setted up pre commit hooks (#21)

Added reuse prettier commitlint hook 3

* feat(async): setted up async tasks (#23)

Added rgb usb at async tasks and channel before firmware update

* feat(firmware): added basic firmware update (#24)

Added simple bootsel FWUPDATE command to At

* feat(com): passed first communication (#25)

Communicated with mobile app first time

* feat(freq): added basic freq handler (#27)

Added simple at freq handler not check and control

* feat(core): added multi core (#28)

System is configured for working multi-core. DDS task is working on the Core-1 and others on the Core-0

* feat(core): at command is made by id based (#29)

Changed all message types to at command base and id forced for all at command

* docs(basic): added basic docs Added simple documantation for version v1.0.0 (#30)
husamettinarabaci added a commit that referenced this pull request Oct 30, 2025
* feat(setup): added basic at command (#19)

Added basic at command implementation. It support usb-midi sysex protocol

* feat(setup): setted up pre commit hooks (#20)

Added reuse prettier commitlint hook

* feat(setup): setted up pre commit hooks (#21)

Added reuse prettier commitlint hook 3

* feat(async): setted up async tasks (#23)

Added rgb usb at async tasks and channel before firmware update

* feat(firmware): added basic firmware update (#24)

Added simple bootsel FWUPDATE command to At

* feat(com): passed first communication (#25)

Communicated with mobile app first time

* feat(freq): added basic freq handler (#27)

Added simple at freq handler not check and control

* feat(core): added multi core (#28)

System is configured for working multi-core. DDS task is working on the Core-1 and others on the Core-0

* feat(core): at command is made by id based (#29)

Changed all message types to at command base and id forced for all at command

* docs(basic): added basic docs Added simple documantation for version v1.0.0 (#30)

* feat(multicore): fixed multicore

Fixed channel for multicore tasks

* feat(multicore): fixed multicore

Fixed channel for multicore tasks
@husamettinarabaci husamettinarabaci mentioned this pull request Mar 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

module:firmware Firmware type:infra Infrastructure, CI/CD, build system

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant